Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO
■EGC
対象 V30HL,V33A,80286以上のCPUを搭載した機種
解説 o EGC(Enhanced Graphic Charger)は、PC-9800のグラフィックVRAM描画を高速化
するための回路で、GRCG(Graphic Charger)の上位互換。CPUとVRAM、または
GDCとVRAMの間に入って、VRAMに書き込むデータに対して様々な論理演算を
行う。複数のプレーンを同時にアクセスしたり、データのビット単位の
シフト等も可能である。
o EGCの全てのレジスタは、I/O 006AhでEGC拡張モードに設定されていて、
かつI/O 007Chのbit 7=1のときのみ変更可能である。
o PC-9801NVはEGCの回路を搭載しているが、通常はマスクされているため使用
できない。OUT EE8Eh,00hを実行し、0000:054Dh bit 6=1にすれば、
レジュームOFF時に限りEGCが使用可能になる。
PC-9801NS/E・NCは、レジュームON時にはEGCが使用できない。
u CPUがEGC経由で描画するときは、必ず16ビットアクセスしなければならない。
VRAMが32ビットローカルバス接続されている機種でも、EGCは16ビット単位で
しか処理できない。
o EGCの使用するI/Oポート一覧
-----------+----+---+--------------------------------------------------
I/Oアドレス|幅 |R/W|内容
-----------+----+---+--------------------------------------------------
04A0h |WORD| W |EGCレジスタ1ライト
04A2h |WORD| W |EGCレジスタ2ライト
04A4h |WORD| W |EGCレジスタ3ライト
04A6h |WORD| W |EGCレジスタ4ライト
04A8h |WORD| W |EGCレジスタ5ライト
04AAh |WORD| W |EGCレジスタ6ライト
04ACh |WORD| W |EGCレジスタ7ライト
04AEh |WORD| W |EGCレジスタ8ライト
-----------+----+---+--------------------------------------------------
関連 0000:054Dh bit 6
I/O EE8Eh
I/O 006Ah - 04h,05h
I/O 006Ah - 06h,07h
I/O 007Ch bit 7
I/O 04A0h
名前 EGCレジスタ1ライト
チップ EGC
機能
[WRITE]
bit 15〜8: 未使用(常にFFhにする)
bit 7〜4: P7EN#〜P4EN#■[PC-H98の256色モードのみ]
bit 3〜0: P3EN#〜P0EN#
1= プレーンへの書き込み無効
0= プレーンへの書き込み有効
[READ]
設定値読み出し(PC-H98,PC-98GSのみ)
解説 o アクティブプレーンを設定する。書き込みを許可するプレーンに対応する
ビットを0にする。
o bit 7〜4は、PC-H98の256色モード時のみ有効。
u PC-H98,PC-98GSでは、このポートをリードすると設定値が読める。
I/O 04A2h
名前 EGCレジスタ2ライト
チップ EGC
機能
[WRITE]
bit 15: 未使用(常に0)
bit 14,13: FGC,BGC
11b= 設定禁止
10b= フォアグラウンドカラー
01b= バックグラウンドカラー
00b= パターンレジスタ
* ROPのP入力に割り当てるデータを選択する
bit 12: 未使用(常に0)
bit 11〜8: リードプレーン
0111b= VRAM plane #7■[PC-H98 256色ボード装備時のみ]
0110b= VRAM plane #6■[PC-H98 256色ボード装備時のみ]
0101b= VRAM plane #5■[PC-H98 256色ボード装備時のみ]
0100b= VRAM plane #4■[PC-H98 256色ボード装備時のみ]
0011b= VRAM plane #3
0010b= VRAM plane #2
0001b= VRAM plane #1
0000b= VRAM plane #0
bit 7〜0: 未使用(常にFFhにする)
[READ]
* 設定値読み出し(PC-H98,PC-98GSのみ)
解説 o ROPのP入力に割り当てるデータを指定する。
o EGCが読み出しを行うプレーンを指定する。
u PC-H98,PC-98GSでは、このポートをリードすると設定値が読める。
関連 I/O 04A6h,04ACh
I/O 04A4h
名前 EGCレジスタ3ライト
チップ EGC
機能
[WRITE]
bit 15,14: 未使用(常に00bにする)
bit 13: コンペアリード
1= しない
0= する
* コンペアリードとはVRAMリード時に、各ドット位置に対して全プ
レーンのデータとフォアグランドカラーを比較し一致すれば1、
一致しなければ0を返す機能
bit 12,11: ライトソース
11b= 設定不可
10b= パターンレジスタの内容をライト
01b= ラスタオペレーションの演算結果をライト
00b= CPUデータをライト
bit 10: リードソース
1= シフタ入力はCPUライトのデータ
0= シフタ入力はグラフィックVRAMのデータ
* EGCのS入力に割り当てるデータを選択する
bit 9〜8: レジスタロード
11b= 設定不可
10b= VRAMライト時にライトされる前のVRAMデータをロード
01b= VRAMリード時にVRAMデータをパターンレジスタにロード
00b= パターンレジスタの変更はしない
bit 7〜0: ROPレジスタ
Shifter 11110000
Distnation 11001100
PatternReg. 10101010
--------------------------------------------------------
ROPコード(例) 11110000=VRAM転送
00001111=VRAM反転転送
11001100=NOP
00110011=VRAM反転
11111111=VRAM塗りつぶし
00000000=VRAM消去
10101010=パターン塗りつぶし
01010101=パターン反転塗りつぶし
[READ] なし
解説 o EGCのROP処理を定義する。
関連 I/O 04A6h
I/O 04A6h
名前 EGCレジスタ4ライト
チップ EGC
機能
[WRITE]
■[FGC=0かつBGC=0のとき]
bit15〜0: 0
■[FGC=1またはBGC=1のとき]
bit15〜8: 0
bit 7〜4: フォアグランドカラー■(PC-H98 256色ボード装備時)
bit 3〜0: フォアグランドカラー
[READ] なし
解説 o フォアグランドカラーを指定する。
o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
指定しなくてはならない。
関連 I/O 04A2h bit 14,13
I/O 04A8h
名前 EGCレジスタ5ライト
チップ EGC
機能
[WRITE]
■[FGC=0かつBGC=0のとき]
bit15〜0: 0
■[FGC=1またはBGC=1のとき]
bit15〜0: マスクレジスタ
* 1にセットされたビットの書き換えが無視される。
[READ] なし
解説 o マスクレジスタを設定する。
o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
指定しなくてはならない。
関連 I/O 04A2h bit 14,13
I/O 04AAh
名前 EGCレジスタ6ライト
チップ EGC
機能
[WRITE]
■[FGC=0かつBGC=0のとき]
bit15〜0: 0
■[FGC=1またはBGC=1のとき]
bit15〜8: 0
bit 7〜4: バックグランドカラー■(PC-H98 256色ボード装備時)
bit 3〜0: バックグランドカラー
[READ] なし
解説 o バックグランドカラーを指定する。
o ROPのP入力にパターンレジスタを割り当てる場合は、このポートに0000hを
指定しなくてはならない。
関連 I/O 04A2h bit 14,13
I/O 04ACh
名前 EGCレジスタ7ライト
チップ EGC
機能
[WRITE]
bit 15〜13: 000b
bit 12: DIR
1= ←の方向にビットを数える(ビット降順)
0= →の方向にビットを数える(ビット昇順)
bit 11〜8: 0000b
bit 7〜4: ディスティネーションビットアドレス
bit 3〜0: ソースビットアドレス
[READ] なし
解説 o シフタの制御を行う。
o シフタでは、入力したデータをビット単位でシフトすることが可能。
関連 I/O 04AEh
I/O 04AEh
名前 EGCレジスタ8ライト
チップ EGC
機能
[WRITE]
bit 15〜12: 0
bit 11〜0: ビット長(0〜4095)
[READ] なし
解説 o シフタの制御を行う。
o このポートにはシフタで扱うデータのビット長を設定する。通常EGC使用時
にはVRAMは16bitアクセスを行うので、このポートには000Fhを指定する。
関連 I/O 04ACh